(check_face_name): Check for fake helv. (Bug#2275)
authorJason Rumney <jasonr@gnu.org>
Thu, 12 Feb 2009 14:59:22 +0000 (14:59 +0000)
committerJason Rumney <jasonr@gnu.org>
Thu, 12 Feb 2009 14:59:22 +0000 (14:59 +0000)
(add_font_entity_to_list): Call check_face_name even when family
is unspecified.

src/w32font.c

index d28483ada1edc47736ed7631e5fd345435eb0fd2..848da7f464d31662cc6f083bf05c4067e74ca558 100644 (file)
@@ -1374,6 +1374,14 @@ check_face_name (font, full_name)
       _strlwr (full_iname);
       return strstr ("helvetica", full_iname) != NULL;
     }
+  /* Same for Helv.  */
+  if (!xstrcasecmp (font->lfFaceName, "helv"))
+    {
+      strncpy (full_iname, full_name, LF_FULLFACESIZE);
+      full_iname[LF_FULLFACESIZE] = 0;
+      _strlwr (full_iname);
+      return strstr ("helv", full_iname) != NULL;
+    }
 
   /* Since Times is mapped to Times New Roman, a substring
      match is not sufficient to filter out the bogus match.  */
@@ -1437,9 +1445,8 @@ add_font_entity_to_list (logical_font, physical_font, font_type, lParam)
                   logical_font->elfLogFont.lfFaceName))
       /* Check for well known substitutions that mess things up in the
         presence of Type-1 fonts of the same name.  */
-      || (match_data->pattern.lfFaceName[0]
-         && !check_face_name (&logical_font->elfLogFont,
-                              logical_font->elfFullName)))
+      || (!check_face_name (&logical_font->elfLogFont,
+                           logical_font->elfFullName)))
     return 1;
 
   /* Make a font entity for the font.  */